home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 July / EnigmA AMIGA RUN 20 (1997)(G.R. Edizioni)(IT)[!][issue 1997-07 & 08][EAR-CD IV].iso / earcd / game / text / lists.lha / listsdir / readme < prev    next >
Text File  |  1996-12-06  |  2KB  |  54 lines

  1. Source code for Scheme engine
  2. and "Lists of Lists"
  3.  
  4. Copyright 1996 by Andrew Plotkin (erkyrath@netcom.com)
  5. This source code may be copied and distributed freely. The
  6. Scheme interpreter source may be freely used, modified, and
  7. incorporated into other works.
  8.  
  9. There are five Inform source files in this archive: 
  10.  
  11. zlisp.inf: simple execution shell
  12. lists.inf: game source for the competition entry itself
  13. lists-manual.inf: the manual used by the competition entry
  14. zlisp-core.inf: Scheme interpreter
  15. zlisp-funs.inf: functions used by Scheme interpreter
  16.  
  17. The Scheme interpreter itself is in zlisp-core.inf and zlisp-funs.inf.
  18. (Please don't tell me I should rename them "zscheme" -- it's not worth
  19. the effort.) Note that zlisp-core.inf includes zlisp-funs.inf.
  20.  
  21. To compile the interpreter on its own, just compile zlisp.inf. As you'll
  22. note, it's just a Main() function which calls LispLoop(), the top-
  23. level function of the interpreter, which is defined in zlisp-core.inf.
  24. This does not include the Inform libraries.
  25.  
  26. To compile "Lists and Lists" (my competition entry per se), compile
  27. lists.inf. You'll note that this calls LispLoop(), in the before:Push
  28. clause of the green button, just where you'd expect. This file includes
  29. zlisp-core.inf, of course, and also includes lists-manual.inf, the
  30. manual, which was big enough that I kept it in a separate file.
  31.  
  32. This should be enough exemplery for you to use the interpreter in your
  33. own Inform programs, should you desire. 
  34.  
  35. The interpreter allocates a huge array to act as the Scheme memory
  36. heap. You should use $MAX_STATIC_DATA=13000 at least -- more if your
  37. game is large.
  38.  
  39. This code has only been compiled under Inform 5.5. I'm sure the 
  40. interpreter would make a great link module, but you'll have to do it
  41. yourself.
  42.  
  43. Functions in the interpreter interface:
  44.  
  45. LispLoop(): Call this to run the interpreter. It will exit when
  46. the user types ":q".
  47.  
  48. LispReset(): Call this to reset the interpreter.
  49.  
  50. LispEscapeCodes(): Define this in your own code to define extra
  51. escape codes (the engine only defines ":q", ":e", ":c", and ":g".)
  52. It must be defined before you include zlisp-core.inf.
  53.  
  54.